package com.resource.manager.test;

import javax.swing.*;
import java.awt.*;

public class ScrollablePanelExample {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            // 创建主窗口
            JFrame frame = new JFrame("JScrollPane 面板滚动示例");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(400, 300);

            // 创建内容面板，设置为垂直排列的 BoxLayout
            JPanel contentPanel = new JPanel();
            contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS));

            // 设置内容面板的首选大小（模拟长内容）
            contentPanel.setPreferredSize(new Dimension(350, 800));

            // 添加多个组件来撑高面板
            for (int i = 1; i <= 20; i++) {
                JButton button = new JButton("按钮 " + i);
                button.setAlignmentX(Component.LEFT_ALIGNMENT); // 左对齐
                contentPanel.add(button);
                contentPanel.add(Box.createRigidArea(new Dimension(0, 10))); // 添加间距
            }

            // 创建带滚动条的面板
            JScrollPane scrollPane = new JScrollPane(contentPanel);

            // 可选：始终显示垂直滚动条
            scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

            // 将滚动面板加入窗口
            frame.add(scrollPane);
            frame.setLocationRelativeTo(null); // 居中显示
            frame.setVisible(true);
        });
    }
}
